﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.DirectoryServices;


namespace AlterarSenha_Exemplo
{

    public class WebPartAlterarSenha
    {

        private string _novaSenha;
        private string _cfnSenha;
        

        public bool ConfirmaSenha
        {
            get
            {
                return _novaSenha.Equals(_cfnSenha) && _novaSenha.Length >= 8;
            }

        }

    
        
               public static void ChangePass (string _novaSenha)
                {

                    DirectoryEntry dirEntry = new DirectoryEntry("LDAP://192.168.0.215", "svcsharepointdev", "AB562c8a");
                    DirectorySearcher userSearcher = new DirectorySearcher(dirEntry);
                    userSearcher.Filter = "(sAMAccountName=" + "dbrito-modulo" + ")";


                    SearchResult foundedUser = userSearcher.FindOne();
                    if (foundedUser != null)
                    {
                        try
                        {
                            var userEntry = foundedUser.GetDirectoryEntry();
                            userEntry.Invoke("SetPassword", new object[] {_novaSenha});
                        }
                        catch (Exception exce)

                        {
                            Console.WriteLine(exce);
                        }
                    }


                }
         

    }

    class Program
    {
        static void Main(string[] args)
        {

          
           // Console.WriteLine ("Digite sua nova senha:");
            //novaSenha = Console.ReadLine();
            Console.WriteLine("Confirme sua nova senha:");
            cnfSenha = Console.ReadLine();
            
            AlterarSenha_Exemplo.WebPartAlterarSenha.ChangePass(novaSenha);
            Console.ReadLine();


        }

       
        public static string novaSenha { get; set; }
        public static string cnfSenha { get; set; }
    }
}
